﻿/// <reference path="../jquery-1.4.2-vsdoc.js" />
/// <reference path="../Default.js" />
/// <reference path="../Extension.js" />

$(document).ready(function () {
    $('#CHAVENFE_NF').setMask('9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999');

    $('#ID_UF_TRAN').change(function () { UFChange('ID_UF_TRAN', 'ID_CID_TRAN'); });
    $('#ID_UF_ISSQN').change(function () { UFChange('ID_UF_ISSQN', 'ID_CID_ISSQN'); });
    $('#ID_UF').change(function () { UFChange('ID_UF', 'ID_CID'); });

    $('#COD_CDPG').change(function () {
        CalcularParcelas($('#VLRTOT_VDA').val(), $(this).val(), $('#EMISSAO_NF').val());
    });

    $('#COD_PROD').change(function () {
        $.getJSON('/Produtos/ObterCodigoUnidade', { COD_PROD: $(this).val() }, function (data) {
            $('#COD_UNID').text(data);
        });
    });

    $('#COD_LOJA').change(function () {
        $('#ENPS_LOJA, #ID_RGTR, #NUMERO_NF, #SERIE_NF').val('');
        if ($(this).val() != '') {
            progressDialog(true);
            $.getJSON('/NotasFiscais/GerarNumeroSerieNF', { COD_LOJA: $(this).val(), ID_NF: $('#ID_NF').val() }, function (data) {
                progressDialog(false);
                $('#ID_RGTR').val(data.ID_RGTR);
                $('#NUMERO_NF').val(data.NUMERO_NF);
                $('#SERIE_NF').val(data.SERIE_NF);

                $.getJSON('/NotasFiscais/EnderecosCount', { ID_PESSOA: $('#COD_LOJA').val(), tipo: 'A' }, function (data) {
                    progressDialog(false);

                    if (data.enderecos == 0) {
                        confirmDialog('Atenção!', 'Esta loja não possui endereços cadastrados. A digitação não pode prosseguir sem esta informação. Deseja cadastrar um endereço para a loja agora?', null, null, function () {
                            setEndereco('A');
                        });
                    }
                    else if (data.enderecos == 1) {
                        $('#ENPS_LOJA').val(data.ID_ENPS);
                    }
                    else {
                        lookupEnderecos('COD_LOJA', 'A', 'ENPS_LOJA');
                    }
                });

                switch (data.ID_RGTR) {
                    case 1:
                    case 2:
                        $('#SICMS_ITVD').val('').hide();
                        $('#CSOSN_ITVD').show();
                        break;
                    default:
                        $('#SICMS_ITVD').show()
                        $('#CSOSN_ITVD').val('').hide();
                        break;
                }
            });
        }
    });

    $('#COD_CLI').change(function () {
        $('#ENPS_CLI').val('');
        if ($(this).val() != '') {
            progressDialog(true);
            $.getJSON('/NotasFiscais/EnderecosCount', { ID_PESSOA: $('#COD_CLI').val(), tipo: 'B' }, function (data) {
                progressDialog(false);
                if (data.enderecos == 0) {
                    confirmDialog('Atenção!', 'Este cliente não possui endereços cadastrados. A digitação não pode prosseguir sem esta informação. Deseja cadastrar um endereço para o cliente agora?', null, null, function () {
                        setEndereco('B');
                    });
                }
                else if (data.enderecos == 1) {
                    $('#ENPS_CLI').val(data.ID_ENPS);
                }
                else {
                    lookupEnderecos('COD_CLI', 'B', 'ENPS_CLI');
                }
            });
        }
    });

    $('#COD_TRAN').change(function () {
        $('#ENPS_TRAN').val('');
        progressDialog(true);
        $.getJSON('/NotasFiscais/EnderecosCount', { ID_PESSOA: $('#COD_TRAN').val(), tipo: 'C' }, function (data) {
            progressDialog(false);
            if (data.enderecos == 0) {
                confirmDialog('Atenção!', 'Este transportador não possui endereços cadastrados. A digitação não pode prosseguir sem esta informação. Deseja cadastrar um endereço para o transportador agora?', null, null, function () {
                    setEndereco('C');
                });
            }
            else if (data.enderecos == 1) {
                $('#ENPS_TRAN').val(data.ID_ENPS);
            }
            else {
                lookupEnderecos('COD_TRAN', 'C', 'ENPS_TRAN');
            }
        });
    });

    $('#SICMS_ITVD').change(function () {
        if ($(this).val() != '') {
            switch ($(this).val()) {
                case "00": changeICMS(['F'], ['A', 'B', 'C', 'D', 'E', 'G', 'H', 'I', 'J']); break;
                case "10": changeICMS(['F', 'I'], ['A', 'B', 'C', 'D', 'E', 'G', 'H', 'J']); break;
                case "|10":
                case "|90": changeICMS(['F', 'G', 'H', 'I', 'J'], ['A', 'B', 'C', 'D', 'E']); break;
                case "20":
                case "51": changeICMS(['F', 'G'], ['A', 'B', 'C', 'D', 'E', 'H', 'I', 'J']); break;
                case "30": changeICMS(['H', 'I'], ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'J']); break;
                case "|41": changeICMS(['D'], ['A', 'B', 'C', 'E', 'F', 'G', 'H', 'I', 'J']); break;
                case "40":
                case "41":
                case "50": changeICMS(['B'], ['A', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']); break;
                case "60": changeICMS(['C'], ['A', 'B', 'D', 'E', 'F', 'G', 'H', 'I', 'J']); break;
                case "70": changeICMS(['F', 'H', 'I'], ['A', 'B', 'C', 'D', 'E', 'G', 'J']); break;
                case "90": changeICMS(['F', 'G', 'I'], ['A', 'B', 'C', 'D', 'E', 'H', 'J']); break;
            }
        }
    });

    $('#CSOSN_ITVD').change(function () {
        if ($(this).val() != '') {
            switch ($(this).val()) {
                case "101": changeICMS(['A'], ['B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']); break;
                case "102":
                case "103":
                case "300":
                case "400": changeICMS([], ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']); break;
                case "201": changeICMS(['A', 'G'], ['B', 'C', 'D', 'E', 'F', 'H', 'I', 'J']); break;
                case "202":
                case "203": changeICMS(['G'], ['A', 'B', 'C', 'D', 'E', 'F', 'H', 'I', 'J']); break;
                case "500": changeICMS(['C'], ['A', 'B', 'D', 'E', 'F', 'G', 'H', 'I', 'J']); break;
                case "900": changeICMS(['A', 'F', 'G'], ['B', 'C', 'D', 'E', 'H', 'I', 'J']); break;
            }
        }
    });

    $('#SIPI_ITVD').change(function () {
        var inputs = $('.FIPI input, .FIPI select');
        switch ($(this).val()) {
            case "00":
            case "01":
            case "02":
            case "03":
            case "04":
            case "51":
            case "52":
            case "53":
            case "54":
            case "55":
                inputs.attr('disabled', 'disabled').addClass('ui-state-disabled');
                break;
            case "49":
            case "50":
            case "99":
                inputs.removeAttr('disabled').removeClass('ui-state-disabled');
                break;
        }
    });

    $('#SPIS_ITVD').change(function () {
        switch ($(this).val()) {
            case "": changeSPISCOFINS('FPIS'); break;
            case "01":
            case "02":
                changeSPISCOFINS('FPIS', [1, 2, 5], false);
                changeSPISCOFINS('FPISST', null, false);
                break;
            case "03":
                changeSPISCOFINS('FPIS', [3, 4, 5], false);
                changeSPISCOFINS('FPISST', [0], false);
                break;
            case "04":
            case "06":
            case "07":
            case "08":
            case "09":
                changeSPISCOFINS('FPIS', null, false);
                changeSPISCOFINS('FPISST', [0], false);
                break;
            default:
                changeSPISCOFINS('FPIS', [0], false);
                changeSPISCOFINS('FPISST', [0], false);
                break;
        }
    });

    $('#TPIS_ITVD').change(function () {
        switch ($(this).val()) {
            case "1":
                changeSPISCOFINS('FPIS', [0, 1, 4], true);
                break; // Percentual
            case "2":
                changeSPISCOFINS('FPIS', [2, 3, 4], true);
                break; // Valor
            default: changeSPISCOFINS('FPIS', null, true); break;
        }
    });

    $('#TPISST_ITVD').change(function () {
        switch ($(this).val()) {
            case "1":
                changeSPISCOFINS('FPISST', [0, 1, 4], true);
                break; // Percentual
            case "2":
                changeSPISCOFINS('FPISST', [2, 3, 4], true);
                break; // Valor
            default:
                changeSPISCOFINS('FPISST', null, true);
                break;
        }
    });

    $('#SCOFINS_ITVD').change(function () {
        switch ($(this).val()) {
            case "": changeSPISCOFINS('FCOFINS'); break;
            case "01":
            case "02":
                changeSPISCOFINS('FCOFINS', [1, 2, 5], false);
                changeSPISCOFINS('FCOFINSST', null, false);
                break;
            case "03":
                changeSPISCOFINS('FCOFINS', [3, 4, 5], false);
                changeSPISCOFINS('FCOFINSST', [0], false);
                break;
            case "04":
            case "06":
            case "07":
            case "08":
            case "09":
                changeSPISCOFINS('FCOFINS', null, false);
                changeSPISCOFINS('FCOFINSST', [0], false);
                break;
            default:
                changeSPISCOFINS('FCOFINS', [0], false);
                changeSPISCOFINS('FCOFINSST', [0], false);
                break;
        }
    });

    $('#TCOFINS_ITVD').change(function () {
        switch ($(this).val()) {
            case "1":
                changeSPISCOFINS('FCOFINS', [0, 1, 4], true);
                changeSPISCOFINS('FCOFINSST', null, true);
                break; // Percentual
            case "2":
                changeSPISCOFINS('FCOFINS', [2, 3, 4], true);
                changeSPISCOFINS('FCOFINSST', null, true);
                break; // Valor
            default: changeSPISCOFINS('FCOFINS', null, true); break;
        }
    });

    $('#TCOFINSST_ITVD').change(function () {
        switch ($(this).val()) {
            case "1":
                changeSPISCOFINS('FCOFINS', null, true);
                changeSPISCOFINS('FCOFINSST', [0, 1, 4], true);
                break; // Percentual
            case "2":
                changeSPISCOFINS('FCOFINS', null, true);
                changeSPISCOFINS('FCOFINSST', [2, 3, 4], true);
                break; // Valor
            default:
                changeSPISCOFINS('FCOFINSST', null, true);
                break;
        }
    });

    $('input[name="tImposto"]').change(function () {
        if ($('input[name="tImposto"]:checked').val() == 'A') {
            $('.tabsprodutos').tabs("enable", 0).tabs("select", 0).tabs("enable", 1).tabs("enable", 5).tabs("disable", 4);
        }
        else {
            $('.tabsprodutos').tabs("enable", 4).tabs("select", 4).tabs("disable", 0).tabs("disable", 1).tabs("disable", 5);
        }
    });

    $('#retirada').change(function () {
        if ($(this).is(':checked'))
            setEndereco('D');
        else {
            progressDialog(true);
            $.getJSON('/NotasFiscais/RemoveEndereco', { type: 'A', ID_ENPS: $('#ENPS_RET').val() }, function () {
                progressDialog(false);
            });
            $('#ENPS_RET').val('');
        }
    });

    $('#entrega').change(function () {
        if ($(this).is(':checked'))
            setEndereco('E');
        else {
            progressDialog(true);
            $.getJSON('/NotasFiscais/RemoveEndereco', { type: 'B', ID_ENPS: $('#ENPS_ENTR').val() }, function () {
                progressDialog(false);
            });
            $('#ENPS_ENTR').val('');
        }
    });

    $('#PLACA_VEIC').setMask('aaa 9999');

    $('#TIPOESPECIFICO_ITVD').change(function () {
        $('.tabsprodutos').tabs("select", 0).tabs("disable", 7).tabs("disable", 8).tabs("disable", 9).tabs("disable", 10);
        switch ($(this).val()) {
            case "veic":
                $('.tabsprodutos').tabs("enable", 7);
                break;
            case "med":
                $('.tabsprodutos').tabs("enable", 8);
                break;
            case "arma":
                $('.tabsprodutos').tabs("enable", 9);
                break;
            case "comb":
                $('.tabsprodutos').tabs("enable", 10);
                break;
        }
    });

    $(".tabscontainer").tabs();
    $(".tabsprodutos").tabs({ disabled: [4, 7, 8, 9, 10] });

    $("#tVolumes").jqGrid({
        datatype: 'json',
        url: '/NotasFiscais/VolumesList',
        mtype: 'GET',
        colNames: ['', 'Id', 'Espécie', 'Marca', 'Numeração', 'Quantidade', 'Peso Líquido', 'Peso Bruto'],
        colModel: [
            { name: "actions", formatter: "actions", editable: false, sortable: false, resizable: false, align: 'center', width: 28, "formatoptions": { keys: false, editbutton: false, delbutton: true} },
            { name: 'ID_VOL', index: 'ID_VOL', width: 80, sortable: false, hidden: true },
            { name: 'ESPECIE_VOL', index: 'ESPECIE_VOL', width: 200, sortable: false },
            { name: 'MARCA_VOL', index: 'MARCA_VOL', width: 200, sortable: false },
            { name: 'NUMERACAO_VOL', index: 'NUMERACAO_VOL', width: 100, sortable: false, align: 'left' },
            { name: 'QTDE_VOL', index: 'QTDE_VOL', width: 100, sortable: false, align: 'rigth' },
            { name: 'PESOBRT_VOL', index: 'PESOBRT_VOL', width: 100, sortable: false, align: 'rigth' },
            { name: 'PESOLIQ_VOL', index: 'PESOLIQ_VOL', width: 100, sortable: false, align: 'rigth' }
        ],
        gridComplete: function () { loadInputs(); },
        caption: 'Volumes',
        altRows: false,
        rownumbers: true,
        pager: $('#pVolumes'),
        height: '100%',
        rowNum: 15,
        width: 868,
        rowList: [5, 10],
        sortname: 'ID_VOL',
        sortorder: 'asc',
        editurl: '/Volumes/VolumeDelete',
        postData: {
            ID_NF: function () { return $('#ID_NF').val(); }
        },
        ondblClickRow: function (id) {
            VolumeEdit(id);
        }
    }).navGrid('#pVolumes', {
        edit: false, add: false, del: false, search: false, refresh: true
    }).navButtonAdd('#pVolumes', {
        caption: '',
        title: 'adicionar volume',
        buttonicon: "ui-icon-plus",
        onClickButton: function () {
            VolumeEdit();
        },
        position: "last"
    });

    $("#table").jqGrid({
        datatype: 'json',
        url: '/NotasFiscais/ItensList',
        mtype: 'GET',
        colNames: ['', 'Id', 'Item', 'Loja', 'Código', 'Descrição', 'Características', 'NCM', 'Natureza', 'Un.', 'Qtde.', 'Preço', 'Total', 'Base ICMS', 'Alíq. ICMS', 'ICMS', 'IPI'],
        colModel: [
            { name: "actions", formatter: "actions", editable: false, sortable: false, resizable: false, align: 'center', width: 28, "formatoptions": { keys: false, editbutton: false, delbutton: true} },
            { name: 'ID_ITVD', index: 'ID_ITVD', width: 60, sortable: false, align: 'rigth', hidden: true },
            { name: 'ITEM_ITVD', index: 'ITEM_ITVD', width: 60, sortable: false, align: 'rigth', hidden: true },
            { name: 'COD_LOJA', index: 'COD_LOJA', width: 300, sortable: false, hidden: true },
            { name: 'COD_PROD', index: 'COD_PROD', width: 60, sortable: false, align: 'rigth' },
            { name: 'DESC_PROD', index: 'DESC_PROD', width: 300, sortable: false },
            { name: 'CARAC_PROD', index: 'CARAC_PROD', width: 200, sortable: false, hidden: true },
            { name: 'COD_NCM', index: 'COD_NCM', width: 200, sortable: false },
            { name: 'CFOP_NTOP', index: 'CFOP_NTOP', width: 200, sortable: false },
            { name: 'COD_UNID', index: 'COD_UNID', width: 50, sortable: false, align: 'center' },
            { name: 'QTDE_ITPV', index: 'QTDE_ITPV', width: 100, sortable: false, align: 'right' },
            { name: 'PRECO_PDLS', index: 'PRECO_PDLS', width: 100, sortable: false, align: 'right' },
            { name: 'VLRTOT_ITVD', index: 'VLRTOT_ITVD', width: 100, sortable: false, align: 'right' },
            { name: 'BICMS_ITVD', index: 'BICMS_ITVD', width: 100, sortable: false, align: 'right' },
            { name: 'PICMS_ITVD', index: 'PICMS_ITVD', width: 100, sortable: false, align: 'right' },
            { name: 'ICMS_ITVD', index: 'ICMS_ITVD', width: 100, sortable: false, align: 'right' },
            { name: 'IPI_ITVD', index: 'IPI_ITVD', width: 100, sortable: false, align: 'right' }
        ],
        gridComplete: function () { loadInputs(); },
        altRows: false,
        numberrows: true,
        rownumbers: true,
        pager: $('#pager'),
        height: '100%',
        width: 884,
        rowNum: 15,
        rowList: [5, 10, 15, 30, 45],
        sortname: 'ITEM_ITVD',
        sortorder: 'asc',
        shrinkToFit: false,
        editurl: '/NotasFiscais/ItenDelete',
        postData: {
            ID_NF: function () { return $('#ID_NF').val() }
        },
        ondblClickRow: function (id) {
            $('#ID_ITVD').val(id);
            ItenDetails(null, id);
        }
    }).navGrid('#pager', { edit: false, add: false, del: false, search: false, refresh: true });
});

function changeICMS(enable, disable) {
    var efield = '', einput = '', dfield = '', dinput = '';

    $.each(enable, function (i, row) {
        efield += '.ICMS' + row + ',';
        einput += '.ICMS' + row + ' input,';
    });
    $.each(disable, function (i, row) {
        dfield += '.ICMS' + row + ',';
        dinput += '.ICMS' + row + ' input,';
    });

    efield = efield.substring(0, efield.length - 1);
    einput = einput.substring(0, einput.length - 1);
    dfield = dfield.substring(0, dfield.length - 1);
    dinput = dinput.substring(0, dinput.length - 1);

    $(dfield).slideUp('normal', function () {
        $(efield).slideDown('normal', function () {
            $(dinput).attr('disabled', 'disabled');
            $(einput).removeAttr('disabled');
        });
    });
}

function changeSPISCOFINS(type, campos, select) {
    var tipo;

    if (select) {
        tipo = $('.' + type + ' input');
    }
    else {
        tipo = $('.' + type + ' input, .' + type + ' select');
    }

    tipo.attr('disabled', 'disabled').addClass('ui-state-disabled').val('');

    if (campos) {
        $.each(campos, function (i, row) {
            tipo.eq(row).removeAttr('disabled').removeClass('ui-state-disabled');
        });
    }
}

function Gravar() {
    progressDialog(true);
    $.post('/NotasFiscais/Update', $('form').serialize(), function (data) {
        progressDialog(false);
        if (data.result == true) {
            $('#ID_NF').val(data.ID_NF);
        }
        else {
            listErros(data.erros);
        }
    }, 'json');
}

function Transmitir() {
    progressDialog(true);
    $.getJSON('/NotasFiscais/Transmitir', { ID_NF: $('#ID_NF').val() }, function (data) {
        progressDialog(false);
        if (data.result == true) {
            confirmDialog('Concluído', 'NFe transmitida com sucesso!<br /><br />Deseja Salvar o XML no seu computador agora e/ou enviar o arquivo por e-mail para o destinatário?', 400, function () {
                $.getJSON('/NotasFiscais/Emails', { ID_NF: $('#ID_NF').val() }, function (data) {
                    if (data.emails == 0) {
                        var dialog = $('<div id="__envioarquivo" />').appendTo('body');
                        dialog.load('/Pessoas/EmailEdit', null, function () {
                            dialog.dialog({
                                closeOnEscape: true,
                                title: 'Cadastro de Email para Envio de arquivo NF-e',
                                resizable: false,
                                draggable: false,
                                modal: true,
                                position: "center",
                                width: 'auto',
                                height: 'auto',
                                close: function () { dialog.dialog('destroy').remove(); },
                                buttons: {
                                    'Cancelar': function () {
                                        dialog.dialog('destroy').remove();
                                    },
                                    'Enviar': function () {
                                        progressDialog(true);
                                        $.post('/Pessoas/EmailEdit', { ID_PESSOA: data.ID_PESSOA, ENDERECO_EMAIL: $('#ENDERECO_EMAIL').val(), OBS_EMAIL: $('#OBS_EMAIL').val() }, function (data) {
                                            if (data.result == true) {
                                                EnviarArquivoPorEmail();
                                            }
                                            else {
                                                listErros(data.erros);
                                            }
                                        }, 'json');
                                    }
                                }
                            });
                        });
                    }
                    else {
                        EnviarArquivoPorEmail();
                    }
                });


            });
        }
        else {
            listErros(data.erros);
        }
    });
}

function Danfe() {
    window.location = '/NotasFiscais/Danfe?' + $('form').serialize();
}

function ItenDetails(COD_PROD, ID_ITVD) {
    $('.iinsert').button('disable');
    $('.iupdate, .icancel').button('enable');
    progressDialog(true);
    $.getJSON('/NotasFiscais/ItenDetails', { COD_PROD: COD_PROD, ID_ITVD: ID_ITVD }, function (data) {
        if (data.result == true) {
            $('#ID_NTOP').val(data.iten.ID_NTOP);
            $('#QTDE_ITVD').val(data.iten.QTDE_ITVD);
            $('#DESCONTO_ITVD').val(data.iten.DESCONTO_ITVD);
            $('#DESP_ACESSOSSORIAS_ITVD').val(data.iten.DESP_ACESSOSSORIAS_ITVD);
            $('#FRETE_ITVD').val(data.iten.FRETE_ITVD);
            $('#SEGURO_ITVD').val(data.iten.SEGURO_ITVD);
            data.iten.INDTOT_ITVD == "A" ? $('#INDTOT_ITVD').attr('selected', 'selected') : $('#INDTOT_ITVD').removeAttr('selected');

            $('#ICMS_ITVD').val(data.iten.ICMS_ITVD);
            $('#BICMS_ITVD').val(data.iten.BICMS_ITVD);
            $('#MICMS_ITVD').val(data.iten.MICMS_ITVD);
            $('#MVAICMS_ITVD').val(data.iten.MVAICMS_ITVD);
            $('#OICMS_ITVD').val(data.iten.OICMS_ITVD);
            $('#OPICMS_ITVD').val(data.iten.OPICMS_ITVD);
            $('#PICMS_ITVD').val(data.iten.PICMS_ITVD);
            $('#RICMS_ITVD').val(data.iten.RICMS_ITVD);
            $('#SICMS_ITVD').val(data.iten.SICMS_ITVD);

            $('#COFINS_ITVD').val(data.iten.COFINS_ITVD);
            $('#BCOFINS_ITVD').val(data.iten.BCOFINS_ITVD);
            $('#PCOFINS_ITVD').val(data.iten.PCOFINS_ITVD);
            $('#QCOFINS_ITVD').val(data.iten.QCOFINS_ITVD);
            $('#SCOFINS_ITVD').val(data.iten.SCOFINS_ITVD);
            $('#TCOFINS_ITVD').val(data.iten.TCOFINS_ITVD);
            $('#VCOFINS_ITVD').val(data.iten.VCOFINS_ITVD);

            $('#PIS_ITVD').val(data.iten.PIS_ITVD);
            $('#BPIS_ITVD').val(data.iten.BPIS_ITVD);
            $('#PPIS_ITVD').val(data.iten.PPIS_ITVD);
            $('#QPIS_ITVD').val(data.iten.QPIS_ITVD);
            $('#SPIS_ITVD').val(data.iten.SPIS_ITVD);
            $('#TPIS_ITVD').val(data.iten.TPIS_ITVD);
            $('#VPIS_ITVD').val(data.iten.VPIS_ITVD);

            $('#IPI_ITVD').val(data.iten.IPI_ITVD);
            $('#BIPI_ITVD').val(data.iten.BIPI_ITVD);
            $('#PIPI_ITVD').val(data.iten.PIPI_ITVD);
            $('#QIPI_ITVD').val(data.iten.QIPI_ITVD);
            $('#QSELOIPI_ITVD').val(data.iten.QSELOIPI_ITVD);
            $('#SELOIPI_ITVD').val(data.iten.SELOIPI_ITVD);
            $('#SIPI_ITVD').val(data.iten.SIPI_ITVD);
            $('#TIPI_ITVD').val(data.iten.TIPI_ITVD);
            $('#VIPI_ITVD').val(data.iten.VIPI_ITVD);

            $('#ISSQN_ITVD').val(data.iten.ISSQN_ITVD);
            $('#BISSQN_ITVD').val(data.iten.BISSQN_ITVD);
            $('#PISSQN_ITVD').val(data.iten.PISSQN_ITVD);
            $('#TISSQN_ITVD').val(data.iten.TISSQN_ITVD);

            $('#II_ITVD').val(data.iten.II_ITVD);
            $('#BII_ITVD').val(data.iten.BII_ITVD);
            $('#DESPADUII_ITVD').val(data.iten.DESPADUII_ITVD);
            $('#IOFII_ITVD').val(data.iten.IOFII_ITVD);

            progressDialog(false);
        }
        else {
            progressDialog(false);
        }
    });
}

function ItenUpdate() {
    progressDialog(true);
    $.post('/NotasFiscais/UpdateItenVenda', $('#MainForm').serialize() + '&' + $('#ItensForm').serialize(), function (data) {
        progressDialog(false);
        if (data.result == true) {
            ItensReset();
            $('#table').trigger('reloadGrid');
            $('#COD_PROD').focus();
        }
        else {
            listErros(data.erros);
        }
    }, 'json');
}

function ItensReset() {
    $('#Itens input').val('');
}

function setEndereco(type) {
    ///	<summary>
    ///	    Exibe um dialog para cadastramento de endereços
    ///	</summary>
    ///	<param name="Controller" optional="false" type="string">Nome do controller.</param>
    ///	<param name="Action" optional="false" type="string">Define se a tela de progresso será exibida ou ocultada.</param>
    ///	<param name="Option" optional="false" type="string">Ação à ser executada. As opções válidas são 'Insert' e 'Update'.</param>
    ///	<param name="ID_FNPR" optional="false" type="Boolean">Define se a tela de progresso será exibida ou ocultada.</param>
    var obj;

    switch (type) {
        case 'A': // Loja
            obj = {
                titulo: 'a loja',
                ID_ENPS: $('#ENPS_LOJA').val(),
                ID_PESSOA: $('#COD_LOJA').val(),
                type: 1,
                desc: 'ENPS_LOJA'
            }
            break;
        case 'B': // Cliente
            obj = {
                titulo: 'o cliente',
                ID_ENPS: $('#ENPS_CLI').val(),
                ID_PESSOA: $('#COD_CLI').val(),
                type: 2,
                desc: 'ENPS_CLI'
            }
            break;
        case 'C': // Transportador
            obj = {
                titulo: 'o transportador',
                ID_ENPS: $('#ENPS_TRAN').val(),
                ID_PESSOA: $('#COD_TRAN').val(),
                type: 3,
                desc: 'ENPS_TRAN'
            }
            break;
        case 'D': // Endereço de retirada diferente do remetente
            obj = {
                checkbox: 'retirada',
                titulo: 'e retirada',
                ID_ENPS: $('#ENPS_RET').val(),
                ID_PESSOA: $('#COD_LOJA').val(),
                type: 4,
                desc: 'ENPS_RET'
            }
            break;
        case 'E': // Endereço de entrega diferente do destinatário
            obj = {
                checkbox: 'entrega',
                titulo: 'e entrega',
                ID_ENPS: $('#ENPS_ENTR').val(),
                ID_PESSOA: $('#COD_CLI').val(),
                type: 5,
                desc: 'ENPS_ENTR'
            }
            break;
    }

    jqGridEdit(
        'Editar endereço d' + obj.titulo,
        null,
        '__enderecoedit',
        '/Enderecos/Edit',
        '/Enderecos/Update',
        obj.ID_ENPS,
        null,
        'EnderecoEditForm',
        function () {
            $('#CEP_END').setMask({ mask: '99999-999', autoTab: false });
            $('#ID_UF').change(function () {
                CidadeSearch($(this).val());
            });
            $('#ID_CID').change(function () {
                BairroSearch($(this).val());
            });
            $('#LOGR_END').autocomplete({
                source: function (request, response) {
                    $.ajax({
                        url: '/Enderecos/LookupList',
                        datatype: "json",
                        data: {
                            term: request.term,
                            ID_FNPR: 8572,
                            ID_UF: $('#ID_UF').val(),
                            ID_CID: $('#ID_CID').val(),
                            ID_BAIRRO: $('#ID_BAIRRO').val()
                        },
                        success: function (data) {
                            response($.map(data, function (item) {
                                return {
                                    id: item.id,
                                    label: item.label,
                                    value: item.value,
                                    ID_END: item.ID_END,
                                    ID_LOGRAD: item.ID_LOGRAD,
                                    ID_BAIRRO: item.ID_BAIRRO
                                }
                            }))
                        }
                    })
                },
                minLength: 4,
                select: function (event, ui) {
                    $('#CEP_END').val(ui.item.id);
                    $('#ID_END').val(ui.item.ID_END);
                    $('#ID_LOGRAD').val(ui.item.ID_LOGRAD);
                    $('#ID_BAIRRO').val(ui.item.ID_BAIRRO);
                }
            });
        },
        null,
        null,
        null,
        '&type=' + obj.type + '&ID_PESSOA=' + obj.ID_PESSOA,
        obj.desc,
        function () {
            $('#' + obj.checkbox).removeAttr('checked');
        }
    );
}

function lookupEnderecos(codigo, tipo, descricao) {
    loadLookup(null, 'Selecionar Endereço', codigo, descricao, 'ENDERECOS', $('#' + codigo).val(), 660, tipo, false, true);
}

function UFChange(ID_UF, ID_CID) {
    if ($('#' + ID_UF).val() != '') {
        progressDialog(true);
        $.getJSON('/Enderecos/CidadeSearch', { CODIBGE_UF: $('#' + ID_UF).val() }, function (data) {
            $('#' + ID_CID + ' option').not(':first').remove();
            $.each(data, function (i, row) {
                $('<option>').val(row.CODIBGE_CID).text(row.NOME_CID).appendTo('#' + ID_CID);
            });
            progressDialog(false);
        });
    }
}

function ItensClear(){
    $('#Itens input').val('');
    $('#COD_PROD').focus();
}

function Listar() {
    loadOption('/NotasFiscais/Index', true);
}

function Inserir() {
    loadOption('/NotasFiscais/Index', true);
}

function Alterar() {
    $.getJSON('/NotasFiscais/ItenDetails', $('.form').serialize(), function (data) { 
        
    });
}

function Cancelar() {
    loadOption('/NotasFiscais/Index', true);
}

function VolumeEdit(id) {
    jqGridEdit(
        'Editar dados do volume',
        'tVolumes',
        '__volumeedit',
        '/Volumes/Edit',
        '/Volumes/Edit',
        id ? id : null,
        null,
        'VolumeEditForm',
        function () {
            $("#tLacres").jqGrid({
                datatype: 'json',
                url: '/Volumes/LacresList',
                mtype: 'GET',
                colNames: ['', 'Id', 'Número'],
                colModel: [
                    { name: "actions", formatter: "actions", editable: false, sortable: false, resizable: false, fixed: true, align: 'center', width: 26, "formatoptions": { keys: false, editbutton: false, delbutton: true} },
                    { name: 'ID_LACRE', index: 'ID_LACRE', width: 10, sortable: false, align: 'right', search: false, hidden: true },
                    { name: 'NUMERO_LACRE', index: 'NUMERO_LACRE', width: 372, align: 'left', editable: true, searchoptions: { sopt: ['cn', 'eq']} }
                ],
                gridComplete: function () { loadInputs(); },
                caption: 'Lacres',
                numberrows: true,
                altRows: false,
                pager: '#pLacres',
                height: 'auto',
                rowNum: 5,
                rowList: [5, 10, 15, 20],
                sortname: 'NUMERO_LACRE',
                sortorder: "asc",
                autowidth: false,
                viewrecords: true,
                viewsortcols: true,
                gridview: true,
                editurl: '/Volumes/LacreDelete',
                postData: {
                    ID_VOL: function () { return $('#ID_VOL').val(); }
                },
                ondblClickRow: function (id) {
                    editRow('tLacres', '/Volumes/LacreUpdate', id);
                }
            }).navGrid("#pLacres", {
                edit: false, add: false, del: false, search: false, refresh: true
            }).navButtonAdd("#pLacres", {
                caption: '',
                buttonicon: 'ui-icon-circle-plus',
                onClickButton: function () {
                    if ($('#ID_VOL').val() == 0) {
                        progressDialog(true);
                        $.post('/Volumes/Edit', $('#VolumeEditForm').serialize() + '&ID_NF=' + $('#ID_NF').val(), function (data) {
                            progressDialog(false);
                            if (data.result == true) {
                                $('#ID_VOL').val(data.ID_VOL);
                                $("#tLacres").addRowData(0, {
                                    ID_LACRE: '', NUMERO_LACRE: ''
                                }, 'first');
                                addRow('tLacres', '/Volumes/LacreUpdate', { ID_VOL: $('#ID_VOL').val() });
                            }
                            else {
                                listErros(data.erros);
                            }
                        }, 'json');
                    }
                    else {
                        $("#tLacres").addRowData(0, {
                            ID_LACRE: '', NUMERO_LACRE: ''
                        }, 'first');
                        addRow('tLacres', '/Volumes/LacreUpdate', { ID_VOL: $('#ID_VOL').val() });
                    }
                },
                title: "adicionar número de lacre",
                position: "last"
            });
        },
        null,
        null,
        null
    );
}

function EnviarArquivoPorEmail() {
    $.post('/NotasFiscais/EnviarArquivoPorEmail', { ID_NF: $('#ID_NF').val() }, function (data) {
        if (data.result = true) {
            messageDialog('Concluído', 'Arquivo xml enviado com sucesso!', null, function () {
                $('#__envioarquivo').dialog('destroy').remove();
                window.location = "/NotasFiscais/SalvarArquivoLocalmente/" + $('#ID_NF').val();
            });
        }
        else {
            listErros(data.erros);
        }
    }, 'json');
}